#ifndef CP_DATA_H
#define CP_DATA_H

#include <QtCore>

//充电桩设备ChargePile/充电机
class CCpData
{
public:
    bool IsCommNormal();
    bool IsCommFault();

    bool IsRunning();
    bool IsStopped();

    bool IsFault();
    bool IsNoFault();

    bool IsAlarm();
    bool IsNoAlarm();

    bool IsOpening();
    bool IsClosed();

    //获取***的显示文本
    QString GetCommStateText();

    void InitToInvalid();
    void InitToZero();
    void InitToValue(quint16 uvalue, float fvalue);

public:
    quint16 m_uCommState;           //3401 通讯状态 0--正常,1-故障
    quint16 m_uRev[99];
    float m_fRev[100];

    //转发的100个UINT16数据
    quint16 m_uRunState;            //3402 运行状态 0运行,1停止
    quint16 m_uFaultState;          //3403 故障状态 0正常,1故障
    quint16 m_uAlarmState;          //3404 告警状态 0正常,1告警
    quint16 m_uSwitchState;         //3405 开关机状态 0已开机,1已关机

    quint16 m_uLinkerState;         //3406 连机器状态
    quint16 m_uWorkState;           //3407 工作状态
    quint16 m_uErrorCode;           //3408 错误码
    quint16 m_uData[93];            //3409~3500 转发的UINT16数据:预留,数组数量=100-上面的转发数

    //转发的100个FLOAT数据
    float m_fBatEnergy;             //3501 电池电量 kwh
    float m_fDcVol;                 //3503 直流电压 V
    float m_fDcCur;                 //3505 直流电流 A
    float m_fData[97];              //3507~3699 转发的FLOAT数据:预留,数组数量=100-上面的转发数

    // 6601     6800	200	UINT16	200	读充电桩的UNIT16数据	0x03/0x04	无	充电桩数据
    // 6801     7200	400	FLOAT	200	读充电桩的FLOAT数据	0x03/0x04	无
    // 22201	22400	200	UINT16	200	写充电桩的数据	0x03/0x04	0x06

    //22201~22400 设置的数据:预留,数组数量=30-上面的设置数
    quint16 m_uSetData[30];
    quint16 m_uSetDataCopy[30];
};

#endif //CP_DATA_H
